perm filename CONKIM.FAI[CMS,LCS] blob sn#371495 filedate 1978-08-02 generic text, type T, neo UTF8
00100		TITLE CON11
00200		A←1 ↔B←2↔C←3 ↔D←4 ↔E←5↔X←6↔Y←7
00300		P←17 ↔ NBUFS←4 ↔ S←10 ↔ LAD←11
00400		SUM←S
00500	PDL:	BLOCK 22
00600	IBUF:	BLOCK 4
00700	OBUF:	BLOCK 4
00800	FILNAM:	'VDSK  '
00900		'DMP   '
01000		0
01100		0
01200	FIL2:	'KLOAD '
01300		'KIM   '
01400		0
01500		0
01600	
01700	STAR:	MOVE P,[PDPO:	IOWD 22,PDL]
01800		OPEN 11,[14↔'DSK   '↔IBUF]
01900		JRST 4,.
02000		INBUF 11,NBUFS
02100		LOOKUP 11,FILNAM
02200		JRST 4,.
02300		OPEN [14↔'DSK   '↔OBUF,,]
02400		JRST 4,.
02500		OUTBUF NBUFS
02600		ENTER FIL2
02700		JRST 4,.
02800	
02900		HRROI Y,-761	;-777 FOR LAST PROM (256 BYTES)
03000				;-7 FOR 1400 ?
03100	
03200	LOADER:	PUSHJ P,INP+1
03300		HRRZI X,200
03400		ADD X,IBUF+2
03500		AOJL Y,LOADER
03600		
03700		PUSHJ P,OUTP	;SETUP KIM FORMAT
03800		HRRZI LAD,4000	;Setup load address = 800 hex.
03900		HRRZI A,"L"	;Kim load command.
04000		HRRZM A,1(Y)
04100		AOBJN Y,.+2
04200		PUSHJ P,OUTP
04300	BLOOP:	HRRZI A,";"	;Record mark.
04400		HRRZM A,1(Y)
04500		AOBJN Y,.+2
04600		PUSHJ P,OUTP
04700		HRRZI A,"8"	;Msd of hex byte count.
04800		HRRZM A,1(Y)
04900		AOBJN Y,.+2
05000		PUSHJ P,OUTP
05100		HRRZI A,"0"	;Lsd
05200		HRRZM A,1(Y)
05300		AOBJN Y,.+2
05400		PUSHJ P,OUTP
05500		HRRZI A,"0"	;Msd of msbyte of hex load addr
05600		HRRZM A,1(Y)
05700		AOBJN Y,.+2
05800		PUSHJ P,OUTP
05900		HRRZI A,(LAD)	;Lsd
06000		LSH A,-10
06100		ANDI A,17
06200		HRRZI SUM,210(A)	;Start check sum.
06300		HRRZ A,HEX(A)	;Make hex.
06400		HRRZM A,1(Y)
06500		AOBJN Y,.+2
06600		PUSHJ P,OUTP
06700		HRRZI A,(LAD)	;Msd of lsbyte.
06800		ANDI A,377
06900		ADDI SUM,(A)
07000		LSH A,-4
07100		HRRZ A,HEX(A)
07200		HRRZM A,1(Y)
07300		AOBJN Y,.+2
07400		PUSHJ P,OUTP
07500		HRRZI A,"0"
07600		HRRZM A,1(Y)	;Lsd
07700		AOBJN Y,.+2
07800		PUSHJ P,OUTP
07900	
08000		PUSHJ P,INP
08100	LOAD:	HRRZ A,1(X)
08200		ANDI A,377
08300		ADDI S,(A)
08400		LSH A,-4
08500		HRRZ A,HEX(A)
08600		HRRZM A,1(Y)
08700		AOBJN Y,.+2
08800		PUSHJ P,OUTP
08900		HRRZ A,1(X)
09000		ANDI A,17
09100		HRRZ A,HEX(A)
09200		HRRZM A,1(Y)
09300	
09400		AOBJN Y,.+2
09500		PUSHJ P,OUTP
09600		AOBJN X,LOAD
09700	
09800		HRRZI A,(S)
09900		LSH A,-14
10000		ANDI A,17
10100		HRRZ A,HEX(A)
10200		HRRZM A,1(Y)
10300		AOBJN Y,.+2
10400		PUSHJ P,OUTP
10500		HRRZI A,(S)
10600		LSH A,-10
10700		ANDI A,17
10800		HRRZ A,HEX(A)
10900		HRRZM A,1(Y)
11000		AOBJN Y,.+2
11100		PUSHJ P,OUTP
11200		HRRZI A,(S)
11300		LSH A,-4
11400		ANDI A,17
11500		HRRZ A,HEX(A)
11600		HRRZM A,1(Y)
11700		AOBJN Y,.+2
11800		PUSHJ P,OUTP
11900		ANDI S,17
12000		HRRZ A,HEX(S)
12100		HRRZM A,1(Y)
12200		AOBJN Y,.+2
12300		PUSHJ P,OUTP
12400	
12500		ADDI LAD,200	;Next record.
12600		CAIE LAD,6000	;Check if done
12700		JRST BLOOP
     

00100		HRRZI A,";"	;Last record.
00200		HRRZM A,1(Y)
00300		AOBJN Y,.+2
00400		PUSHJ P,OUTP
00500		HRRZI A,"0"
00600		HRRZM A,1(Y)
00700		AOBJN Y,.+2
00800		PUSHJ P,OUTP
00900		HRRZM A,1(Y)
01000		AOBJN Y,.+2
01100		PUSHJ P,OUTP
01200		HRRZM A,1(Y)
01300		AOBJN Y,.+2
01400		PUSHJ P,OUTP
01500		HRRZM A,1(Y)
01600		AOBJN Y,.+2
01700		PUSHJ P,OUTP
01800		HRRZM A,1(Y)
01900		AOBJN Y,.+2
02000		PUSHJ P,OUTP
02100		HRRZM A,1(Y)
02200		AOBJN Y,.+2
02300		PUSHJ P,OUTP
02400	
02500		HRRZM A,1(Y)	;Last ck sum
02600		AOBJN Y,.+2
02700		PUSHJ P,OUTP
02800		HRRZM A,1(Y)
02900		AOBJN Y,.+2
03000		PUSHJ P,OUTP
03100		HRRZM A,1(Y)
03200		AOBJN Y,.+2
03300		PUSHJ P,OUTP
03400		HRRZM A,1(Y)
03500		AOBJN Y,.+1
03600		PUSHJ P,OUTP
03700		RELEAS
03800		EXIT
03900	
04000	INP:	HRRM X,IBUF+1
04100		IN 11,
04200		JRST SETX
04300		STATO 11,20000
04400		JRST 4,.
04500	ERROR:	OUTSTR [ASCIZ/?????/]
04600		EXIT
04700	
04800	HEX:	"0"
04900		"1"
05000		"2"
05100		"3"
05200		"4"
05300		"5"
05400		"6"
05500		"7"
05600		"8"
05700		"9"
05800		"A"
05900		"B"
06000		"C"
06100		"D"
06200		"E"
06300		"F"
06400	
06500	OUTP:	HRRM Y,OBUF+1
06600		OUT
06700		CAIA
06800		JRST 4,.
06900		HRRZ Y,OBUF+2
07000		MOVNI Y,(Y)
07100		HRLZI Y,(Y)
07200		HRR Y,OBUF+1
07300		POPJ P,
07400	
07500	SETX:	HRRZ X,IBUF+2
07600		MOVNI X,(X)
07700		HRLZI X,(X)
07800		HRR X,IBUF+1
07900		POPJ P,
08000	END STAR